<?php
    //возвращает опцию с заданным именем
    function get_option($name)
    {   
        $array = (array)m::json_data_read('option.dat');
        if ( isset($array[$name]) )
        {
            return $array[$name]; 
        }
        else
        {
            return false;
        }
    }

    //удаляет опцию или группу опций с заданным именем
    function delete_option($name)
    {
        $array = (array)m::json_data_read('option.dat');

        if ( isset($array[$name]) )
        {
            unset($array[$name]);
            m::json_data_save('option.dat', $array);
        }
        else
        {
            return false;
        }
    }

    //обновление значение опции
    function update_option($name, $value)
    {
        $array = (array)m::json_data_read('option.dat');

        $array[$name] = $value;
        m::json_data_save('option.dat', $array);
    }

    //добавление опции
    function add_option($name, $value, $group ='', $group2 = '')
    {
        $array = (array)m::json_data_read('option.dat');
        $array[$name] = $value;
        m::json_data_save('option.dat', $array);
    }

    class setting
    {
        static $info = array();

        public static function get($name_option = 'setting')
        { 
            $set =  get_option( $name_option  );

            if ( is_array($set) and count($set) )
            {
                foreach ($set as $name => $val)
                {
                    self::$info[ $name ] = $val['value']; 
                }
            }
        }

        public static function save($name_option = 'setting')
        {

            $set =  get_option($name_option );

            if ( is_array(self::$info) and count(self::$info) )
            {
                foreach (self::$info as $name => $val)
                {       

                    if ( isset($set[ $name ]))
                    {                    
                        $set[ $name ]['value'] =  $val;
                    }
                }

                update_option($name_option , $set);   
            } 

        }
    }

?>
